<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1.forEach循环
        // var arr = [12, 34, 56];
        // arr.forEach(function (item, index, newarr) {
        //     console.log(item, index, newarr);
        // })
        // console.log('------------');
        // 回调函数的定义
        // function myeach(arr, fn) {
        //     for (var i = 0; i < arr.length; i++) {
        //         fn(arr[i], i , arr);
        //     }
        // }

        // // 函数的调用
        // myeach(arr,function(item, index, newarr) {
        //     console.log(item, index, newarr);
        // }); 


        // Array.prototype.myeach = function (fn) {
        //     for (var i = 0; i < arr.length; i++) {
        //         fn(this[i], i , this);
        //     }
        // }
        // arr.myeach(function(item, index, newarr) {
        //     console.log(item, index, newarr);
        // })

        // // 2.map循环  映射 
        // var arr = ["张三", "李四", "王五"];
        // var res = arr.map(function (item, key, arr) {
        //     return item;
        // })
        // console.log(res);

        // function mymap(arr, fn) {
        //     var result = [];
        //     for(var i = 0; i < arr.length; i++) {
        //         var res = fn(arr[i], i , arr);
        //         result.push(res)
        //     }
        //     return result;
        // }
        // var res = mymap(arr, function(item, index, newarr) {
        //     return item;
        // })
        // console.log(res);

        // 3.some循环
        // var arr = [false,false,true,true]
        // // var arr = [false,false,false]
        // var res = arr.some(function (item, index, newarr) {
        //     console.log(item, index, newarr);
        //     return item;
        // })
        // console.log(res);
        // console.log('-------------------------');
        // function mysome(arr, fn) {
        //     var flag;
        //     for (var i = 0; i < arr.length; i++) {
        //         var res = fn(arr[i], i, arr);
        //         if (res === true) {
        //             flag = true;
        //             break;
        //         }else {
        //             flag = false;
        //         }
        //     }
        //     return flag;
        // }

        // function mysome(arr, fn) {
        //     for (var i = 0; i < arr.length; i++) {
        //         var res = fn(arr[i], i, arr);
        //         if (res === true) {
        //             break;
        //         }
        //     }
        //     return res;
        // }

        // var res = mysome(arr,function(item, index, newarr){
        //     console.log(item, index, newarr);
        //     return item;
        // });
        // console.log(res);

        // 4.every循环
        var arr = [false,false,true,true]
        // var arr = [true, true, true, false];
        // var res = arr.every(function(item, index, newarr) {
        //     console.log(item, index, newarr);
        //     return item;
        // })
        // console.log(res);
         
        // function myevery(arr, fn) {
        //     var flag;
        //     for(var i = 0; i < arr.length; i++) {
        //         var res = fn(arr[i], i, arr);
        //         if(res === false) {
        //             flag = false;
        //             break;
        //         } else {
        //             flag = true;
        //         }
        //     }
        //     return flag;
        // }

        // // 简化版
        // function myevery(arr, fn) {
        //     for(var i = 0; i < arr.length; i++) {
        //         var res = fn(arr[i], i, arr);
        //         if(res === false) {
        //             break;
        //         } 
        //     }
        //     return res;
        // }
        // var res = myevery(arr,function(item, index, newarr){
        //     console.log(item, index, newarr);
        //     return item;
        // });
        // console.log(res);

        function fun () {
            for(var i = 0; i < 5; i++) {
                console.log(i);
                if (i==3) {
                    return
                }
            }
        }
        fun();
        arr.forEach(function() {
            for(var i = 0; i < 5; i++) {
                console.log(i);
                if (i==3) {
                    return
                }
            }
        })
        
    </script>
</body>
</html>